-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
all-packages.nix: add stdenvBootstrapTools to top-level.nix #168650
Conversation
@ofborg build pkgsCross.aarch64-multiplatform.bootstrapTools.build |
Nits:
|
Done.
Done. Thanks for reminding me. Since ofborg can build the darwin bootstrap-tools this PR should certainly accommodate that. I looked into generalizing this further, but there really are only three bootstrap-files-builders: linux, darwin, and freebsd... and the freebsd builder doesn't appear to work anymore (I can't get There wasn't an externally-visible way to invoke the "map this hostPlatform to the subdirectory of |
I wouldn't worry about BSD here. IIRC and on a quick glance, the bootstrap we use for FreeBSD just impurely reuses |
@ofborg build stdenvBootstrapTools |
I like this. I just wonder about This difference might be confusing. Still, maybe we'd better switch to the native approach here as well (soon-ish), in which case I think we could leave this PR simple as-is, and the difference would disappear. But darwin is not my topic; I guess /cc @NixOS/darwin-maintainers? |
Ugh, yeah, I don't think that expression should be setting the But I think that's a concern to be left for a separate PR. |
This looks like a good idea. A next step could be making it possible to get a stdenv with a bootstrap-tools build. |
Yes, one of my longer-term goals is to have an automated Hydra job ensuring that generating fresh bootstrap-files tarballs wouldn't break anything. I worry about bitrot there, like one day we wake up and realize that we can't rebuild the bootstrap-files tarballs without breaking stuff. Actually regenerating the tarballs periodically (each nixos release?) probably isn't a good idea though. Since each regenerated tarball's provenance includes the previous generation this just creates a really really really long dependency chain for reproducibility, and you've still got a "magic tarball hash" at the start of that chain. So making sure we can regenerate the bootstrap-tarballs is a good idea, but actually doing that (unless we're forced to) probably isn't. |
We had |
When I wrote
I should have said "without breaking the stdenv bootstrap process" instead of "stuff".
It looks like I'm proposing to go further, by replacing or augmenting (a) and (b) with "rebuild all of stdenv". If this puts too much burden on Hydra it could run weekly or less often. After spending the last two weeks digging around in the stdenv-bootstrap process I'm a little bit worried about the stdenv-bootstrap process making subtle undocumented assumptions about the bootstrap-files. We might not be able to document all these assumptions, but we can at least use automated testing to alert ourselves immediately at whatever commit they end up being violated. |
Ah, I see. Rebuilding the stdenvs is relatively expensive, but I expect it wouldn't happen often, except on changes that already rebuild very many packages anyway. |
It could be done only after merges from staging to master. Anything that causes stdenv to rebuild ought to go through staging anyways. |
Additional commit 3ecf7ee fixes an embarrassing oversight. The force-push following this commit will collapse the PR to a single commit (no other changes). |
This allows us to summon ofborg like this: @ofborg build pkgsCross.aarch64-multiplatform.stdenvBootstrapTools.build
OMG, this somehow caused removal of the jobs on Hydra and noone's noticed for months? https://hydra.nixos.org/eval/1758946#tabs-removed |
Could it be due to job name clash between
|
Doesn't Hydra email the |
Cross-compiled bootstrapTools seem unaffected. The job name for cross-built bootstrap tools is |
Hydra hasn't emailed in years, AFAIK. |
Oh my. Why not? Being notified of build failures seems like such a useful feature. Also is there any way to mass-download the underlying data which are used to render https://hydra.nixos.org/project/nixpkgs? I would really like to be able to query these data from a shell prompt and with lower latency. |
Let's rename the attribute to make job names distinct on hydra: #182058 |
Description of changes
This allows us to summon ofborg like this:
@ofborg build pkgsCross.aarch64-multiplatform.stdenvBootstrapTools.build
Things done